#传递列表
#有一用户列表，将其传递给函数，向列表中的每个人发出问候
def greet_users(names):
    for name in names:
        print(f'你好{name}')
user_names = ['peter','david']
greet_users(user_names)
#在函数中修改列表
def checkup_users(names,finish):
    while names:
        finish_name = names.pop()
        print(f'finish name: {finish_name}')
        finish.append(finish_name)
def message(names,finish):
    if not names:
        print('大家都完成体检了')
    print(f'已完成体检的有{finish}')
no_user = ['peter','david','sam','max','jack']
finish_users = []
checkup_users(no_user[:],finish_users)
message(no_user,finish_users)
#有时候可能需要传递此列表，但不修改，可以将列表的切片传递
checkup_users(no_user,finish_users)
message(no_user,finish_users)
#传递任意数量的实参
#有时不知道函数要接受多少个实参
def make_pizza(*toppings):###形参中的*创建了一个toppings元组，元组包含函数接收到的所有值
    '''打印所有顾客需要的配料'''
    print(toppings)
make_pizza('mashala','chiz','fruit')
#要让函数接受不同类型的实参，必须在函数定义中，将接受任意数量实参的形参放在最后
#使用任意数量的关键字实参
#有时候会接受任意数量的实参，但不知道传递给函数的会是什么信息，可以将函数编写成可以接受任意数量的键值对
def build_profile(first_name,last_name,**full_name):
    full_name['first_name'] = first_name
    full_name['last_name'] = last_name
    return full_name
user_profile = build_profile('he','si',ni='ha')
print(user_profile)
